﻿/**
 * Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
 */

// Tool scripts for the sample pages.
// This file can be ignored and is not required to make use of CKEditor.

(function () {
  CKEDITOR.on('instanceReady', function (ev) {
    // Check for sample compliance.
    var editor = ev.editor,
      meta = CKEDITOR.document.$.getElementsByName(
        'ckeditor-sample-required-plugins'
      ),
      requires = meta.length
        ? CKEDITOR.dom.element.get(meta[0]).getAttribute('content').split(',')
        : [],
      missing = [],
      i;

    if (requires.length) {
      for (i = 0; i < requires.length; i++) {
        if (!editor.plugins[requires[i]])
          missing.push('<code>' + requires[i] + '</code>');
      }

      if (missing.length) {
        var warn = CKEDITOR.dom.element.createFromHtml(
          '<div class="warning">' +
            '<span>To fully experience this demo, the ' +
            missing.join(', ') +
            ' plugin' +
            (missing.length > 1 ? 's are' : ' is') +
            ' required.</span>' +
            '</div>'
        );
        warn.insertBefore(editor.container);
      }
    }

    // Set icons.
    var doc = new CKEDITOR.dom.document(document),
      icons = doc.find('.button_icon');

    for (i = 0; i < icons.count(); i++) {
      var icon = icons.getItem(i),
        name = icon.getAttribute('data-icon'),
        style = CKEDITOR.skin.getIconStyle(name, CKEDITOR.lang.dir == 'rtl');

      icon.addClass('cke_button_icon');
      icon.addClass('cke_button__' + name + '_icon');
      icon.setAttribute('style', style);
      icon.setStyle('float', 'none');
    }
  });
})();
